package com.group2.util;

import java.util.regex.*;

/*字符串匹配工具*/

public class StringUtil {
	/*空串匹配*/
	public static boolean isEmpty(String str) {
		if ("".equals(str) || str == null) {
			return true;
		} else {
			return false;
		}
	}
	/*非空串匹配*/
	public static boolean isNotEmpty(String str) {
		if (!"".equals(str) && str != null) {
			return true;
		} else {
			return false;
		}
	}
	/*密码匹配
	 * 要求大于8位，小于16位，包含数字、字母、特殊字符*/
	public static boolean isPassword(String str) {
		boolean isDigit = false;//是否包含数字
		boolean isLetter = false;//是否包含字母
		boolean isSpecial = false;//是否包含特殊字符

		for (int i = 0; i < str.length(); i++) {
			//判断是否含有特殊字符
			Pattern p = Pattern.compile("[~`#$%^&*!@.,()\\\\{}|:;?<>]");
			Matcher m = p.matcher(str);
			if (Character.isDigit(str.charAt(i))) {   //用char包装类中的判断数字的方法判断每一个字符
				isDigit = true;
			} else if (Character.isLetter(str.charAt(i))) {  //用char包装类中的判断字母的方法判断每一个字符
				isLetter = true;
			}else if (m.find()) {//判断是否包含特殊字符
				isSpecial = true;
			}
		}
		//密码的正则规则 8到12位  包含数字 字母 特殊字符!@.,()
		String regex = "^([a-zA-Z0-9~`#$%^&*!@.,()\\\\{}|:;?<>]){8,16}$";
		boolean isRight = isDigit && isLetter && isSpecial && str.matches(regex);
		return isRight;
		
	}
	
	
}
